This invention relates to systems and methods for data processing, and particularly, though not exclusively, to systems and methods for processing data obtained during logging operations to investigate earth formations traversed by a borehole.
Borehole logging is an important step in the discovery and development of subsurface reserves of hydrocarbons and other valuable raw materials. Typically, after a borehole has been drilled an elongate logging tool or sonde is lowered to the bottom of the borehole on an armored cable containing electrical conductors for transmitting electrical power and signals between surface equipment and the sonde. The sonde is then raised up the borehole by winching the cable, and sensors in the sonde are used to measure electrical, acoustic and/or nuclear parameters of the formation traversed by the borehole. The measurements are transmitted up the cable to be recorded in the surface equipment. Analysis and interpretation of the measurements, either at the wellsite during logging or subsequently at a remote location, enables information about the presence and producibility of hydrocarbons or other materials to be obtained.
As reserves of hydrocarbons have been consumed it has become commercially economic to exploit reserves of increasing difficulty of extraction. Consequently the logging tools used to investigate such reserves have become increasingly complex and sophisticated, so that it is now common to provide a computer in the surface equipment at the wellsite to aid in monitoring and controlling the operation of the sonde and in collecting and analyzing the measurements made by the sonde. Such a computer typically performs a variety of functions: encoding and sending timing and other control signals to the sonde to trigger a measurement cycle; receiving signals from the sonde and decoding them to extract data relating to the measurements and the operation of the sonde; analyzing the data to monitor operation of the sonde and generate control signals to be sent to it to optimize its operation in accordance with borehole and formation conditions; monitoring the depth of the sonde in the borehole; processing the data to obtain values for the required measurements; processing the measurements to derive values for formation parameters of interest; and generating real time displays indicative of selected operating parameters of the sonde, measurements and formation parameters. This variety and quantity of functions imposes a substantial burden on the computer system. Implementing computer systems to accomplish all the required tasks accurately and quickly enough to permit an acceptable logging speed to be attained has proven to be very difficult and time consuming.
The requirements of data acquisition and control described above are also encountered in other environments, for example in avionics and aerospace applications.
A particular problem is that the computer must provide data manipulation functions, which are essentially independent of the time and duration of the processing involved, and also process control functions, which are affected by the time and duration of processing. Thus, for example, the manipulation of data obtained from the sonde by applying a Fourier transform is a time-independent task: the same result for the transform output will always result from the same set of data values, irrespective of the time and duration of processing. In contrast the acquisition of data from the sonde is time-dependent: the actual value found by inspecting the last of a sequence of received items of data (which may affect subsequent control signals to be sent to the sonde) will depend upon the rate at which data items are sent uphole and the rate at which the sequence of data items coming from the sonde is inspected. Any change in the speed of processing in the downhole or uphole equipment can affect the result. Furthermore the rate of uphole transmission will typically be primarily dependent on the characteristics of the sonde, so the time of reception of each item of data at the surface cannot be controlled by the surface computer equipment. Likewise the characteristics of the sonde may require that commands be sent downhole at a rate sufficient to ensure optimum operation. The time-independent operations must not interfere with timely occurrence of these time-dependent functions, to avoid loss of data and failure to alter operation of the sonde promptly in response to changing conditions. Equally it is important to ensure that the time-dependent functions do not cause errors in the time-independent processing. These characteristics must be preserved despite any system modifications involving hardware (such as a change in processor clock rate) or software (such as addition of program modules).
Techniques such as interrupt processing are known for coordinating execution of multiple functions. However they must be applied with great care to ensure adequate speed of operation and avoidance of conflict in use of processor resources such as random access memory. This is especially the case with modern borehole logging operations, in which advanced measurement techniques generate large quantities of data using sondes that may require accurate control, and the cost of exploration demands that the logging be completed as quickly as possible. Consequently providing reliable, efficient and effective data processing systems to operate in such circumstances is a difficult and expensive task.
The problem becomes even more acute when several tasks are to be executed concurrently, either by means of time sharing of a single processor or with multiple processors operating in parallel.
Various arrangements are known for segmenting functions to be performed by computers and for coordinating the operating of multiprocessor systems. For example, in `Coroutines and networks of parallel processes`, by G. Kahn and D. B. MacQueen, Information Processing 77, International Federation of Information Processing Societies (1977), pp. 993-998, a system is described in which processes which can be executed concurrently and communicate with one another via `channels`. The channels act as first-in first-out buffers carrying information in one direction only, from processes producing data to processes requiring data. A process requiring a data item can access the channel which connects it to the process producing the relevant sequence of items, whereupon it receives the next consecutive item in the sequence stored in the channel. Such a system is an example of a so-called data-flow architecture.
Another type of data-flow system is described in `Performance analysis of a data-flow processor', by D. P. Misunas, Proceedings of the 1976 International Conference on Parallel Processing (1976), pp. 100-105; and in `Applying data flow in the real world`, by W. G. Paseman, Byte, McGrawHill, vol. 10, No. 5, (May 1985), pp. 201-214. Such systems communicate between processes by means of fixed size packets of data, and a process is not executed until all the items of data it requires to execute its function completely are available. The availability of all the required data items triggers the execution of the process, which does not have any control over whether it is then executed or to what extent. A similar data-flow system is described in U.S. Pat. No. 4,197,589 to Cornish et al, and a concurrent task and instruction processor is described in U.S. Pat. No. 4,229,790 to Gilliland et al.
It is an object of this invention to provide a system and method for processing data which facilitate implementation of time-independent and time-dependent operations jointly.
It is another object of this invention to provide a system and method which facilitates processing of data by means of a plurality of concurrently executing processes.
It is a further object of this invention to provide a system and method for processing data using a plurality of data processors.